Technical Field
The present disclosure relates to cache durability and, more specifically, to durability of server-side cached data across failure events and administrative actions.
Background Information
A server system typically is connected to one or more storage devices into which information may be entered, and from which information (e.g., data) may be obtained, as desired. The server system may logically organize the information stored on the devices as storage containers, such as files or logical units (LUNs). Typically, one or more applications may execute on the server system to access the information (data) in the storage containers.
To improve performance, the server system may also store the data accessed (i.e., retrieved) by the applications from the storage containers in a cache, where the storage devices may act as a backing store for the cache. During data retrieval, the cache may reach a steady state (i.e., rendered “warm”) once a working set of the data has been accessed by the applications from the storage containers. The time to achieve a warm cache may take hours or even days depending on the data access pattern, i.e., input/output (I/O) workload of the applications. A warm cache typically results in improved I/O performance due to high cache hit rates. Thus, it is advantageous to maintain a warm cache and avoid lengthy re-warming should the cache “cool.”
However, a cache is usually purged (i.e., rendered “cold”) after an administrative action (e.g., a planned shutdown) or a fault event (e.g., a server system failure and a power failure), typically because of an incoherency (i.e., lack of synchronization) between data in the cache and corresponding data in the backing store. After the administrative action or failure event, the server system may be rebooted and the order in which the storage devices become operational (i.e., drivers loaded) may be unpredictable, such that data may be written to one or more of the storage devices (i.e., storage containers) before the cache is operational. This may render portions of a previously warm cache incoherent with respect to the backing store, i.e., data in the cache may be stale (older) compared to data written to the corresponding storage container. As a result, coherency of a warm cache across administrative actions or failure events is unpredictable after an administrative action or fault event.
Therefore, there is a need to maintain coherency of a warm cache across administrative actions and fault events, especially during reboot of the server system.